HJS

Streaming SSR (Feat. Suspense)

Next.js 14에서는 React의 Suspsense와 스트리밍(Streaming SSR) 기능을 적극 활용하여 서버 사이드 렌더링(SSR)의 성능을 더욱 향상시킬 수 있습니다. 이 기능을 사용하면 데이터를 부분적으로 스트리밍하여 사용자가 페이지를 더 빠르게 볼 수 있도록 최적화할 수 있습니다.


1️⃣ Streaming SSR이란?

**Streaming SSR(Server-Side Rendering)**은 서버가 HTML을 한꺼번에 보내는 것이 아니라 준비된 부분부터 점진적으로 클라이언트에 전송하는 방식입니다.

🔹 장점

🔹 다양한 속도로 로딩되는 컴포넌트 예제

다양한 컴포넌트가 서로 다른 속도로 로딩될 경우, Suspense를 활용하면 빠르게 로딩되는 콘텐츠를 먼저 보여줄 수 있습니다.

import { Suspense } from 'react';
import FastComponent from '@/components/FastComponent';
import MediumComponent from '@/components/MediumComponent';
import SlowComponent from '@/components/SlowComponent';

export default function Page() {
  return (
    <>
      <h1>대시보드</h1>
      <Suspense fallback={<p>빠른 컴포넌트 로딩 중...</p>}>
        <FastComponent />
      </Suspense>
      <Suspense fallback={<p>중간 속도의 컴포넌트 로딩 중...</p>}>
        <MediumComponent />
      </Suspense>
      <Suspense fallback={<p>느린 컴포넌트 로딩 중...</p>}>
        <SlowComponent />
      </Suspense>
    </>
  );
}

✔️ FastComponent는 즉시 렌더링되며, MediumComponent, SlowComponent는 각각 비동기적으로 로드됩니다.
✔️ 사용자는 빠른 컴포넌트를 먼저 확인할 수 있어 UX가 개선됩니다